home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / C / Applications / Moscow ML 1.42 / src / mosmllib / CharVector.sml < prev    next >
Encoding:
Text File  |  1997-08-18  |  2.0 KB  |  59 lines  |  [TEXT/R*ch]

  1. (* CharVector *)
  2.  
  3. type vector = string
  4. type elem = Char.char
  5.  
  6. local 
  7.     prim_val magic : 'a -> 'b = 1 "identity";
  8. in
  9.     val maxLen = Word8Vector.maxLen
  10.     
  11.     val fromList : elem list -> vector         = magic Word8Vector.fromList
  12.     val tabulate : int * (int -> elem) -> vector = magic Word8Vector.tabulate
  13.  
  14.     val length   : vector -> int          = magic Word8Vector.length
  15.     val sub      : vector * int -> elem         = magic Word8Vector.sub
  16.     val extract  : vector * int * int option -> vector 
  17.                         = magic Word8Vector.extract
  18.     val concat   : vector list -> vector        = magic Word8Vector.concat
  19.  
  20.  
  21.     val app      : (elem -> unit) -> vector -> unit
  22.                         = magic Word8Vector.app
  23.     val map      : (elem -> elem) -> vector -> vector
  24.                         = magic Word8Vector.map
  25.     fun foldl (f : elem * 'b -> 'b) (e : 'b) v : 'b
  26.     = Word8Vector.foldl (magic f) e (magic v)
  27.  
  28.     fun foldr (f : elem * 'b -> 'b) (e : 'b) (v : vector) : 'b
  29.     = Word8Vector.foldr (magic f) e (magic v)
  30.     
  31.     fun appi (f : int * elem -> unit) (v : vector * int * int option) : unit
  32.     = Word8Vector.appi (magic f) (magic v)
  33.  
  34.     fun mapi (f : int * elem -> elem) (v : vector * int * int option) : vector
  35.     = magic(Word8Vector.mapi (magic f) (magic v))
  36.  
  37.     fun foldli (f : int * elem * 'b -> 'b) (e : 'b) 
  38.            (v : vector*int*int option) : 'b
  39.         = Word8Vector.foldli (magic f) e (magic v)
  40.  
  41.     fun foldri (f : int * elem * 'b -> 'b) (e : 'b) 
  42.            (v : vector*int*int option) : 'b
  43.     = Word8Vector.foldri (magic f) e (magic v)
  44.  
  45. (*
  46.     val foldl    : (elem * 'b -> 'b) -> 'b -> vector -> 'b
  47.                         = magic Word8Vector.foldl
  48.     val foldr    : (elem * 'b -> 'b) -> 'b -> vector -> 'b
  49.                         = magic Word8Vector.foldr
  50.     
  51.     val appi     : (int * elem -> unit) -> vector * int * int option -> unit
  52.                         = magic Word8Vector.appi
  53.     val foldli   : (int * elem * 'b -> 'b) -> 'b -> vector*int*int option -> 'b
  54.                         = magic Word8Vector.foldli
  55.     val foldri   : (int * elem * 'b -> 'b) -> 'b -> vector*int*int option -> 'b
  56.                         = magic Word8Vector.foldri
  57. *)
  58. end
  59.